#ifndef VIEWER_H
#define VIEWER_H

#include <QWidget>
#include <connectorwidget.h>
#include <QDebug>
#include <QTimer>
#include <QThread>
#include <QDateTime>
#include <QMessageBox>

#define DISPLAY_MODE_0 0 //默认显示  一个框中显示收发
#define DISPLAY_MODE_1 1



//@breif "38"->0x38
//@para 两个char长度的str
//@return 成功返回1 失败返回0
int fun_str2hex(char * str,unsigned char *res);

//@breif 在一个字节上加hex33 0x38->0x6b 56->107
//@para char *a 要修改的字节的地址
//return
bool fun_add33(unsigned char *a);

namespace Ui {
class viewer;
}


class viewer : public QWidget
{
    Q_OBJECT

public:
    viewer(QSerialPort *_port,QWidget *parent = 0);
    ~viewer();

    void test123();

    int send2Port(QByteArray ba);
    int send2Port(QString str);

    void UIRxUpdate(QByteArray ba);
    void UIRxUpdate(QString qstr);

    void UISwitch();

    int analyseFrame();


    bool IsSendOver();

signals:
    void data_print(QByteArray);

private slots:
    void on_pushButton_Trans_clicked();

    void on_pushButton_Clear_clicked();

    void on_pushButton_swtich_clicked();

    void recvOver();

private:
    Ui::viewer *ui;
    QSerialPort *m_port;
    int m_RXDataSize;             /*计算接收数据的大小*/
    int m_TXDataSize;             /*计算发送数据的大小*/
    int m_flag;
    QTimer *m_timer;
    QByteArray m_rxDataHex;//保存[0]=6 [1]=8
    QByteArray m_rxDataChar;//保存[0]='h'
};

#endif // VIEWER_H
